package cn.itcast.dao.system;

import cn.itcast.domain.system.Role;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author LT
 * @version 1.0.0
 * @ClassName RoleDao.java
 * @Description TODO 角色类接口
 * @createTime 2020年03月24日 13:27:00
 */
public interface RoleDao {

    //根据id查询
    Role findById(String id);

    //查询全部
    List<Role> findAll(String companyId);

    //根据id删除
    void delete(String id);

    //添加
    void save(Role role);

    //更新
    void update(Role role);

    /**
     * 根据角色id删除角色的所有权限
     * @param roleid
     */
    void deleteRoleModuleByRold(String roleid);

    /**
     * 给角色插入新的权限
     * 注意： 该方法有两个参数，那么一定要使用@Param注解给参数指定名字，否则mapper文件没法获取。
     * @param roleid
     * @param moduleId
     */
    void addRoleModule(@Param("roleId") String roleid,@Param("moduleId") String moduleId);

    /**
     * 查询当前用户具备的角色接口
     * @param id
     * @return
     */
    List<Role> findUserRoleByUserId(String id);
}
